// 字典
interface DictItem {
  label: string,
  value: number | string,
  disabled?: boolean,
  teamType?: string
}
// 用户
interface userType {
  'createTime'?: string,
  'createUser'?: string,
  'createUserName'?: string,
  'headImage'?: string,
  'id'?: string,
  'permissionCode'?: string,
  'permissionCodes'?: string[],
  'remark'?: string,
  'roleId'?: number,
  'roleName'?: string,
  // 状态：Enable-启用，Disable-禁用
  'status'?: string,
  'teamId'?: number,
  // 团队管理编码
  'teamLeader'?: string,
  // 团队管理标识，T：是，F：否
  'teamLeaderFlag'?: string,
  'teamName'?: string,
  // 团队类型：Seats-坐席，Biz-业务
  'teamType'?: string,
  'updateTime'?: string,
  'updateUser'?: string,
  'updateUserName'?: string,
  // 登录名
  'userCode'?: string,
  'password'?: string,
  'username'?: string,
  'token'?: string,
  'invitationFlag'?: string,
}
// 角色名称
interface roleType {
  'id'?: string,
  'createTime'?: string,
  'updateTime'?: string,
  'createUser'?: string,
  'updateUser'?: string,
  'createUserName'?: string,
  'updateUserName'?: string,
  'roleName'?: string,
  'remark'?: string,
  'status'?: string,
  'permissionCode'?: string[]
}
// 团队
interface teamType {
  'createTime'?: string,
  'createUser'?: string,
  'createUserName'?: string,
  'id'?: string,
  'status'?: string,
  'teamLeader'?: string,
  'teamLeaderName'?: string,
  'teamName'?: string,
  'teamType'?: string,
  'remark'?: string,
  'updateTime'?: string,
  'updateUser'?: string,
  'updateUserName'?: string,
}
// 礼物
interface giftType {
  'createTime'?: string,
  'createUser'?: string,
  'createUserName'?: string,
  'id'?: number,
  'name'?: string,
  'operationType'?: string,
  'remark'?: string,
  'status'?: string,
  'updateTime'?: string,
  'updateUser'?: string,
  'updateUserName'?: string
}
// 订单
interface orderType {
  'orderType'?: string,
  // 预约办理日期
  'appointmentProcessingDate'?: string,
  // 意向日期
  'intendedDate'?: string,
  // 业务团队编码
  'bizTeamId'?: string,
  // 业务团队名称
  'bizTeamName'?: string,
  // 业务员工号
  'bizTeamUserCode'?: string,
  // 业务员姓名
  'bizTeamUsername'?: string,
  // 业务类型ID
  'bizTypeId'?: string,
  // 业务类型
  'bizTypeName'?: string,
  // 套餐ID
  'comboId'?: string,
  // 套餐
  'comboName'?: string,
  'createTime'?: string,
  'createUser'?: string,
  'createUserName'?: string,
  // 地址全名
  'fullAddressName'?: string,
  // 客户住址
  'customerAddress'?: string,
  // 地址编码
  'addressCodes'?: number[],
  // 省市区编码
  'provinceCode'?: number,
  'cityCode'?: number,
  'areaCode'?: number,
  // 省市区名称
  'belongingArea'?: string,
  // 客户手持照
  'customerHandheldImg'?: string,
  // 客户信息
  'customerName'?: string,
  // 客户手机号
  'customerPhone'?: string,
  // 客户视频URL
  'customerVideoUrl'?: string,
  // 冻结金额
  'freezeAmount'?: number,
  // 礼物ID
  'giftId'?: number,
  // 礼物
  'giftName'?: string,
  'id'?: string,
  // 订单编码图片
  'orderCodeImg'?: string,
  // 备注
  'orderComment'?: string,
  // 订单编码
  'orderNo'?: string,
  // 其他照片
  'otherImg'?: string,
  // 手机串码图片路径
  'phoneSerialImg'?: string,
  // 手机来源
  'phoneSource'?: string,
  // 办理情况
  'processingDetail'?: string,
  // 办理主号
  'processingMainNumber'?: string,
  // 说明
  'remark'?: string,
  // 销售机型
  'salesModels'?: string,
  // 坐席派单时间
  'seatAssignmentTime'?: string,
  // 坐席团队编码
  'seatTeamId'?: number,
  // 坐席团队
  'seatTeamName'?: string,
  // 坐席人员
  'seatUserCode'?: string,
  // 坐席人员名称
  'seatUsername'?: string,
  // 订单状态
  'status'?: string,
  'statusName'?: string,
  // 团队派单时间
  'teamAssignmentTime'?: string,
  'updateTime'?: string,
  'updateUser'?: string,
  'updateUserName'?: string,
}
// 审批
interface approveType {
  id?: number,
  payload?: string,
  accountId?: number,
  accountName?: string,
  note?: string,
  status?: number,
  type?: number,
  createdTime?: string
}

interface temporaryParkingType {
  id?: number,
  houseId?: number,
  accountId?: number,
  carId?: number,
  startTime?: string,
  carNo?: string,
  endTime?: string,
  duration?: number,
  amount?: number
}
// 房屋绑定数据定义
interface houseAccountType {
  buildingIndex?: number,
  accountId?: number,
  houseId?: number,
  houseName?: string,
  attachments?: string
}

// 弹窗通用参数定义
interface modalPropsType {
  visible: boolean,
  onClose: () => void,
  onSuccess: () => void,
}

// 通知数据定义
interface noticeType {
  id?: number,
  title?: string
  cover: string,
  status?: number,
  content: {
    imgs?: string[],
    text?: string,
    type: 'img' | 'text'
  }[]
}

interface optionConfigType {
  bizTeams?: DictItem[],
  seatTeams?: DictItem[],
  teams?: DictItem[],
  bizTypes: DictItem[],
  comboIds: DictItem[],
  gifts: DictItem[]
}

export type {
  DictItem,
  userType,
  roleType,
  teamType,
  giftType,
  orderType,
  approveType,
  temporaryParkingType,
  modalPropsType,
  houseAccountType,
  noticeType,
  optionConfigType
}

// 定义 Cascader 选项类型
export interface CascaderOption {
  value: number;
  label: string;
  isLeaf?: boolean;
  loading?: boolean;
  children?: CascaderOption[];
}
